package com.hoshiicloud.lessee.feign.hystrix;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.hoshiicloud.common.rpc.Response;
import com.hoshiicloud.common.utils.tree.GoodsCategoryWithGoodNumTree;
import com.hoshiicloud.common.utils.tree.Menu;
import com.hoshiicloud.goods.entity.goods.*;
import com.hoshiicloud.goods.param.category.GoodsSpecificationsValuesTypeAddParam;
import com.hoshiicloud.goods.param.category.GoodsSpecificationsValuesTypeQueryParam;
import com.hoshiicloud.goods.param.category.GoodsSpecificationsValuesTypeUpdateParam;
import com.hoshiicloud.goods.param.goods.*;
import com.hoshiicloud.goods.vo.GoodsPropertiesPageVo;
import com.hoshiicloud.goods.vo.GoodsPropertiesVo;
import com.hoshiicloud.goods.vo.GoodsSpecificationsValuesVo;
import com.hoshiicloud.lessee.feign.LesseeGoodsFeignService;
import lombok.extern.slf4j.Slf4j;

import java.util.ArrayList;
import java.util.List;

/**
 * 商品域
 */
@Slf4j
public class LesseeGoodsFeignServiceFallback implements LesseeGoodsFeignService {

    @Override
    public Response<Page<PublicProperties>> getPublicPropertiesPage(PublicPropertiesQueryParam param) {
        return Response.failed("获取公共属性列表失败");
    }

    @Override
    public Response<Boolean> savePublicProperties(PublicPropertiesAddParam param) {
        return Response.failed("保存公共属性失败");
    }

    @Override
    public Response<Boolean> updatePublicProperties(PublicPropertiesUpdateParam param) {
        return Response.failed("更新公共属性失败");
    }

    @Override
    public Response<List<String>> publicPropertiesDropdownBox(Long companyId, String propertyName) {
        List<String> list = new ArrayList<>();
        return Response.data(list);
    }

    @Override
    public Response<Page<GoodsPropertiesPageVo>> getGoodsPropertiesPage(GoodsPropertiesQueryParam param) {
        return null;
    }

    @Override
    public Response<Boolean> saveGoodsProperties(GoodsPropertiesAddParam param) {
        return null;
    }

    @Override
    public Response<Boolean> updateGoodsProperties(GoodsPropertiesUpdateParam param) {
        return null;
    }

    @Override
    public Response<Boolean> deleteGoodsProperties(Long id) {
        return Response.failed("商品属性删除失败");
    }

    @Override
    public Response<List<GoodsPropertiesVo>> getGoodsProperByCateId(Long categoryId) {
        return null;
    }

    @Override
    public Response<GoodsCategory> queryGoodsCategoryById(Long id) {
        return Response.failed("获取类目信息失败");
    }

    @Override
    public Response<Long> saveGoodsCategory(GoodsCategory entity) {
        return Response.failed("新增商品类目失败");
    }

    @Override
    public Response<Boolean> updateGoodsCategory(GoodsCategory entity) {
        return Response.failed("更新商品类目失败");
    }

    @Override
    public Response<Boolean> deleteGoodsCategory(Long id) {
        return null;
    }

    @Override
    public Response<List<Menu>> getCategorys(Long companyId) {
        return Response.data(new ArrayList<>());
    }

    @Override
    public Response<List<GoodsCategoryWithGoodNumTree>> getCategorys2(Long companyId) {
        return Response.data(new ArrayList<>());
    }

    @Override
    public Response<List<Menu>> getCategorys3(Long companyId) {

        return Response.data(new ArrayList<>());
    }

    @Override
    public Response<Boolean> updateGoodsCategoryStatus(GoodsCategoryStatusUpdateParam param) {
        return Response.failed("更新商品类目启用禁用状态失败");
    }

    @Override
    public Response<String> getCategoryContext(String categoryContextQueryStr) {
        return null;
    }

    @Override
    public Response<Boolean> saveGoodsCategoryPropertieBatch(List<GoodsCategoryProperties> list) {
        return Response.failed("新增商品类目关联参数属性失败");
    }

    @Override
    public Response<Integer> deleteGoodsCategoryPropertieByCategoryId(Long categoryId) {
        return Response.failed("删除商品类目关联参数属性失败");
    }

    @Override
    public Response<List<GoodsProperties>> listGoodsCategoryProByCategoryId(Long categoryId) {
        return Response.data(new ArrayList<>());
    }

    @Override
    public Response<Boolean> saveGoodsCategorySpecBatch(List<GoodsCategorySpec> list) {
        return Response.failed("新增商品类目关联规格失败");
    }

    @Override
    public Response<Integer> deleteGoodsCategorySpecByCategoryId(Long categoryId) {
        return Response.failed("删除商品类目关联规格失败");
    }

    @Override
    public Response<List<GoodsSpecifications>> listGoodsCategorySpecByCategoryId(Long categoryId) {
        return Response.data(new ArrayList<>());
    }

    @Override
    public Response<Page<GoodsSpecificationsValuesType>> getGoodsSpecificationsValuesTypePage(GoodsSpecificationsValuesTypeQueryParam param) {
        return null;
    }

    @Override
    public Response<Boolean> saveGoodsSpecificationsValuesType(GoodsSpecificationsValuesTypeAddParam param) {
        return null;
    }

    @Override
    public Response<Boolean> updateGoodsSpecificationsValuesType(GoodsSpecificationsValuesTypeUpdateParam param) {
        return null;
    }

    @Override
    public Response<Boolean> deleteGoodsSpecificationsValuesType(Long id) {
        return null;
    }

    @Override
    public Response<List<GoodsSpecificationsValuesType>> goodsSpecificationsValuesTypeDropdownBox(Long companyId, String type) {
        return Response.data(new ArrayList<>());
    }

    @Override
    public Response<Page<GoodsSpecifications>> getGoodsSpecPage(GoodsSpecificationsQueryParam param) {
        return null;
    }

    @Override
    public Response<Boolean> saveGoodsSpec(GoodsSpecificationsAddParam param) {
        return null;
    }

    @Override
    public Response<Boolean> updateGoodsSpec(GoodsSpecificationsUpdateParam param) {
        return null;
    }

    @Override
    public Response<Boolean> deleteGoodsSpec(Long id) {
        return null;
    }

    @Override
    public Response<Page<GoodsSpecificationsValuesVo>> getGoodsSpecValuesPage(GoodsSpecificationsValuesQueryParam param) {
        return null;
    }

    @Override
    public Response<Boolean> saveGoodsSpecValues(GoodsSpecificationsValuesAddParam param) {
        return null;
    }

    @Override
    public Response updateGoodsSpecValues(GoodsSpecificationsValuesUpdateParam param) {
        return null;
    }

    @Override
    public Response<Boolean> deleteGoodsSpecValues(Long id) {
        return null;
    }















}
